//
// Created by xili on 2024/8/9 10:00.
// Go big or go home.
//
#include "leetcode.h"

class Solution {
public:
    int findJudge(int n, vector <vector<int>> &trust) {
        if (n == 1) {
            return 1;  // 如果小镇上只有一个人，那么他就是法官。
        }
        vector<int> trustCount(n + 1, 0);
        for (auto &t: trust) {
            trustCount[t[0]]--;  // 如果某人信任别人，他不可能是法官，减1
            trustCount[t[1]]++;  // 被信任的人，计数加1
        }

        for (int i = 1; i <= n; i++) {
            if (trustCount[i] == n - 1) {  // 法官应该被信任 n-1 次
                return i;
            }
        }
        return -1;  // 如果没有找到符合条件的法官，返回 -1
    }
};
